﻿using System;
using System.ComponentModel;

namespace Marmat.Forms
{

    /// <summary>
    /// 表示工具箱项的特性。
    /// </summary>
    [AttributeUsage(AttributeTargets.All)]
    public class MarmatToolboxItemAttribute : ToolboxItemAttribute
    {

        /// <summary>
        /// 初始化 System.ComponentModel.ToolboxItemAttribute 类的新实例，并指定是否使用默认初始化值。
        /// </summary>
        /// <param name="defaultType">如果为 true，则创建默认类型的工具箱项特性；如果为 false，则不为该特性关联默认工具箱项支持。</param>
        public MarmatToolboxItemAttribute(bool defaultType) : base(defaultType)
        {
            this.DefaultType = defaultType;
        }

        /// <summary>
        /// 如果为 true，则创建默认类型的工具箱项特性；如果为 false，则不为该特性关联默认工具箱项支持。
        /// </summary>
        /// <returns></returns>
        public bool DefaultType { get; private set; }

        /// <summary>
        /// 使用指定的类型名称初始化 System.ComponentModel.ToolboxItemAttribute 类的新实例。
        /// </summary>
        /// <param name="toolboxItemTypeName">工具箱项的类型名称和包含该类型的程序集的名称。</param>
        public MarmatToolboxItemAttribute(string toolboxItemTypeName) : base(toolboxItemTypeName)
        {
        }

        /// <summary>
        /// 使用工具箱项的指定类型初始化 System.ComponentModel.ToolboxItemAttribute 类的新实例。
        /// </summary>
        /// <param name="toolboxItemType">工具箱项的类型。</param>
        public MarmatToolboxItemAttribute(Type toolboxItemType) : base(toolboxItemType)
        {
        }
    }
}